master.original <- read_csv("Data/Facilities/Master-provider-directory-2005-2024.csv") %>%
mutate(Dem_Desc = fct_relevel(Dem_Desc, "Entirely rural", "Town/rural mix", "Urban/town/rural mix", "Entirely urban"),
planning.region = fct_relevel(planning.region, "Northwest", "Northeast", "Central", "Seven County Mpls-St Paul", "Southwest", "Southeast"),
edr = fct_relevel(edr, "EDR 1 - Northwest", "EDR 2 - Headwaters", "EDR 3 - Arrowhead", "EDR 4 - West Central", "EDR 5 - North Central", "EDR 6E- Southwest Central", "EDR 6W- Upper Minnesota Valley", "EDR 7E- East Central", "EDR 7W- Central", "EDR 8 - Southwest", "EDR 9 - South Central", "EDR 10 - Southeast", "EDR 11 - 7 County Twin Cities", "Minnesota"),
edr.simple = fct_relevel(edr.simple, "EDR 1", "EDR 2", "EDR 3", "EDR 4", "EDR 5", "EDR 6E", "EDR 6W", "EDR 7E", "EDR 7W", "EDR 8", "EDR 9", "EDR 10", "EDR 11"))
master.snf <- master.original %>%
select(year, LIC_TYPE, NH_BEDS, SNF_BEDS, SNFNF_BEDS, NF1_BEDS, NF2_BEDS, HFID, NAME, CITY, STATE, ZIP, COUNTY_NAME, countyfp, Dem_Desc, edr, planning.region) %>%
left_join(counties.regions[,c(1,8)], by = "countyfp")
datatable(master.snf, class = "cell-border stripe", filter = "top", rownames = FALSE,
options = list(columnDefs = list(list(className = "dt-center", targets = 1:4))))
First we need to figure out our population projections by age group. Since the information I have in the percentage of elderly that utilize long term care facilities is from the Profile of Older Americans, which states the following;
“In 2022, a relatively small number of people (1.3 million) 65 and older lived in nursing homes. However, the percentage of the population increased with age, ranging from 1% for people 65-74 and 3% for people 75-84 to 8% for people over 85.” - Profile of Older Americans
So, let’s put together the 2024 population and projections for those three age groups. I will also filter it so it only has the years 2024, 2030, 2035, 2040, 2045 and 2050.
age.group.original <- read_csv("Data/Population/Age/Master-age-group-projections-county.csv") %>%
left_join(counties.regions[,c(1,8)], by = "countyfp") %>%
mutate(Dem_Desc = fct_relevel(Dem_Desc, "Entirely rural", "Town/rural mix", "Urban/town/rural mix", "Entirely urban"),
edr = fct_relevel(edr, "EDR 1 - Northwest", "EDR 2 - Headwaters", "EDR 3 - Arrowhead", "EDR 4 - West Central", "EDR 5 - North Central", "EDR 6E- Southwest Central", "EDR 6W- Upper Minnesota Valley", "EDR 7E- East Central", "EDR 7W- Central", "EDR 8 - Southwest", "EDR 9 - South Central", "EDR 10 - Southeast", "EDR 11 - 7 County Twin Cities", "Minnesota"),
edr.simple = fct_relevel(edr.simple, "EDR 1", "EDR 2", "EDR 3", "EDR 4", "EDR 5", "EDR 6E", "EDR 6W", "EDR 7E", "EDR 7W", "EDR 8", "EDR 9", "EDR 10", "EDR 11"),
planning.region = fct_relevel(planning.region, "Northwest", "Northeast", "Central", "Seven County Mpls-St Paul", "Southwest", "Southeast"))
master.age.group <- age.group.original
datatable(master.age.group, class = "cell-border stripe", filter = "top", rownames = FALSE,
options = list(columnDefs = list(list(className = "dt-center", targets = 1:ncol(master.age.group)))))
The age group dataset has 8,352 rows and 11 columns.
Using the percentages provided by the Profile of Older Americans, we will create a new column that estimates demand for long-term care.
ltc.demand.county <- master.age.group %>%
mutate(ltc.demand = ifelse(age.group == "65_74", pop * .01,
ifelse(age.group == "75_84", pop * .03, pop * .08))) %>%
group_by(year, countyfp, Name, planning.region, edr, edr.simple, Dem_Desc) %>%
summarize(pop.65plus = sum(pop),
ltc.demand = sum(ltc.demand)) %>%
ungroup()
The following tabset provides a table of the projected demand for long term care among 65+ population for each region and rural-urban category.
What is shows is that demand for long-term care is already high in our most rural counties where it’s about to peak, especially by 2035. In our more urban counties, it’s going to peak significantly later - after 2050.
Demand for long-term care in Minnesota will increase by 45% by 2050. The largest growth will occur between 2025 and 2035 and then it begins to plateau.
The chart below shows that the largest growth in demand will occur in the seven county metro, particularly in the later years. However, by 2030 demand will be somewhat similar across all planning regions. After 2030, rural Minnesota begins to level off a bit, especially in Southwest and Northeast Minnesota.
The EDRs have a lot of variation in long term care demand. Although the seven county metro still has the highest demand, it’s closed followed by EDR 5 and EDR 7W.
Rural-urban categories also show significant variation. Our entirely rural areas will have peak demand in 2035 with a 6.25% increase from 2024. Town/rural mix and Urban/town/rural mix counties will peak in 2045 with an increase in demand of nearly 25%. Entirely urban counties will continue to peak until 2050 with an increase in demand of 60%!
The county map shows an interesting pattern. Along the western side of Minnesota, counties have already peaked in demand or will peak by 2030. The largest increases in demand occur in the seven county suburbs, and in the central lakes region. Cass and Crow Wing counties will peak in 2050 with a 50% to 75% increase in demand. The largest increase is in Carver County with an increase of 174%.
It might be nice to see the differences in when demand will peak across the state and to what extent that demand will be increased.
Not surprisingly, the numbers below clarify how significant the peak in long term care will differ across rural-urbanness. Our most rural counties will peak in the mid-2030s while the more urban counties peak around 2047 to 2055.
The peak long term care demand for all of Minnesota will be in 2047 with 37,336 people.
The year each region will peak in demand for long term care varies significantly. Northeast will peak first in 2041 with 2,216 people. This is followed immediately by Southwest with 2,568 people. Northwest and and Southeast peak in the same year with 2047. Significantly later are Central and the Seven County Metro with a peak at 2055.
Breaking this down by EDR really shows the variation across EDRs. It’s important to highlight that our most rural EDR’s peak first. EDR 1, 2, 8, 6W, and 3 all peak at or before 2041. Then there’s a pretty wide gap until EDR 4 and 6E with 2047.
One I can’t really figure out is EDR 5 - North Central - that won’t peak until 2055.
As expected, our most rural county group will peak significantly sooner than other counties. By 2037, the entirely rural county group will peak with their long term care demand with 689 people. From there, town/rural mix and urban/town/rural mix peak in 2047. Entirely urban counties peak in 2055.
The map below shows that the peak year for nursing home care will be before 2030 for many counties on the Northwest and Southwest regions of Minnesota. While around the seven county metro, along the I94 corridor and in Southeast Minnesota long term care will peak after 2040 and even 2045.
The next big issue is if there’s a gap in demand vs supply in long term care. I’m going to assess this question via three scenarios;
First, I need to put together the nursing home capacity for 2024. For capacity, we will use the sum of NH_BEDS and NF2_BEDS.
NH_BEDS = SNF_BEDS + SNFNF_BEDS + NF1_BEDS
NF2_BEDS are Federal Medicaid nursing beds located in boarding care homes.
supply.demand.steady.mn <- snf.cap %>%
summarize(snf.cap = sum(snf.cap)) %>%
cross_join(ltc.demand.mn) %>%
mutate(snf.gap.demand.diff = snf.cap - ltc.demand)
names(supply.demand.steady.mn)
## [1] "snf.cap" "year" "pop.65plus"
## [4] "ltc.demand" "ltc.demand.index" "data_id"
## [7] "snf.gap.demand.diff"